首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何用PHP搜索字符串中的日语字符?

如何用PHP搜索字符串中的日语字符?
EN

Stack Overflow用户
提问于 2019-06-08 23:28:01
回答 1查看 835关注 0票数 0

我有3个这样的字符串:

代码语言:javascript
复制
$str_1 = '「ハッスルの日」開催について';
$str_2 = 'Today is monday';
$str_3 = '(167スルの日日)';

我有一个用户的输入框。如果字符串包含用户输入的文本,则会将该字符串导出到CSV文件。Eg - input: Today - $str_2将被导出到新的CSV。

现在我有两个问题:

  1. 如果用户输入日语括号“或日语字符,我的程序就找不到它。我从其他文本文件中读取这些字符串,所以我不知道应该对用户输入进行编码,还是需要对字符串进行编码。我尝试了这两种方法,但仍然不起作用。
  2. 当我将日语字符回显到浏览器时,它显示正常,但当我导出到CSV时,它显示为这样:§§“秧”$CSV。我应该怎么做才能正确导出?
EN

回答 1

Stack Overflow用户

发布于 2019-06-10 06:06:27

我们可能会在这里使用正则表达式来检测日语字符,我们可以从以下内容开始:

代码语言:javascript
复制
([\p{Katakana}\p{Hiragana}\p{Han}「」]+)

我们可以简单地向这个char类添加我们想要的任何其他字符:

代码语言:javascript
复制
[\p{Katakana}\p{Hiragana}\p{Han}「」]

Demo

测试

代码语言:javascript
复制
$re = '/([\p{Katakana}\p{Hiragana}\p{Han}「」]+)/mu';
$str = '「ハッスルの日」開催について
Today is monday
167スルの日日';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);

// Print the entire match result
var_dump($matches);

输出

代码语言:javascript
复制
array(2) {
  [0]=>
  array(2) {
    [0]=>
    string(42) "「ハッスルの日」開催について"
    [1]=>
    string(42) "「ハッスルの日」開催について"
  }
  [1]=>
  array(2) {
    [0]=>
    string(15) "スルの日日"
    [1]=>
    string(15) "スルの日日"
  }
}

我们还可以使用参考中列出的日本unicodes来保存/检索我们的数据。

参考文献

Regular Expressions for Japanese Text

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56507695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档