- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我尝试使用 preg_split 拆分文本,但我没有得到它的正则表达式。
例子:
I search 1, regex to: no. Or... yes!
应该得到:
Array
(
[0] => I
[1] => search
[2] => 1
[3] => ,
[4] => regex
[5] => to
[6] => :
[7] => no
[8] => .
[9] => Or
[10] => ...
[11] => yes
[12] => !
)
我尝试了以下代码:
preg_split("/([\s]+)/", "I search 1, regex to: no. Or... yes!")
结束于:
Array
(
[0] => I
[1] => search
[2] => 1,
[3] => regex
[4] => to:
[5] => no.
[6] => Or...
[7] => yes!
)
编辑:好的,原来的问题已经解决了,但我在示例中忘记了一些东西:
新例子:
I search 1, regex (regular expression) to: That's it is! Und über den Wolken müssen wir...
应该得到:
array (
0 => 'I',
1 => 'search',
2 => '1',
3 => ',',
4 => 'regex',
5 => '(',
6 => 'regular',
7 => 'expression',
8 => ')',
9 => 'to',
10 => ':',
11 => 'That',
12 => '\'s',
13 => 'it',
14 => 'is',
15 => '!',
16 => 'Und',
17 => 'über',
18 => 'den',
19 => 'Wolken',
20 => 'müssen',
21 => 'wir',
22 => '...',
)
一件事是,开头 ( 在第一个解决方案中不匹配。另一件事是,也不是单词内的德语字符 ÄÖÜäöüß 不匹配。
希望可以更新问题(而不是打开一个新问题)。
我的 last try以下是不匹配的内容:
\s+|(?<!(A-Za-z1-0ÄÖÜäöüß)+)(?=(A-Za-z1-0ÄÖÜäöüß)+)
最佳答案
您可以使用这个基于前瞻的正则表达式:
$str = 'I search 1, regex to: no. Or... yes!';
$tok = preg_split('/\h+|(?<!\W)(?=\W)/', $str);
print_r($tok);
Array
(
[0] => I
[1] => search
[2] => 1
[3] => ,
[4] => regex
[5] => to
[6] => :
[7] => no
[8] => .
[9] => Or
[10] => ...
[11] => yes
[12] => !
)
/\h+|(?<!\W)(?=\W)
是基于交替的正则表达式,它在 1+ 水平空间或在前一个字符不是非单词字符且下一个字符是非单词字符的位置处拆分。
交替的 RHS 是 (?<!\W)(?=\W)
其中 (?<!\W)
是负向后看,这意味着前一个字符不是非单词字符。那么(?=\W)
是正先行,这意味着下一个字符是一个非单词字符。
关于php preg_split 没有松散的文本,。 : and so forth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29059112/
为了与 php 5.3 兼容,从 split 更改为 preg_split 后,我从 php 收到此警告: PHP Warning: preg_split(): Delimiter must n
我有一个充满字符串的数组,其中可能包含一个或多个下划线、破折号和句点。我想将 分成由下划线、破折号和句点分隔的字符。到目前为止,我已经成功使用下划线和破折号,但没有成功。 这有效: $family02
我有一个包含一些数字和文本的字符串,我试图在第一个非数字字符处拆分该字符串。 例如,我有几个字符串,比如 $value = '150px'; $value = '50em'; $value = '25
我在弄清楚这一点时遇到了一些麻烦。 我有这样的数据行: $data = "Alpha Natural Resources Inc COM 02076X102 2,077 45,700 x 我希望在有多
我正在尝试拆分格式如下的字符串: Value1==Value1||Value2==Value2||..." 在 == 和 || 处但我在使用管道时遇到了问题。我可以很容易地在 == 处拆分它们,但是当
我正在尝试使用 preg_split 拆分字符串。这是字符串的示例:111235622411我希望输出是这样的: $arr[0] = "111"; $arr[1] = "2"; $arr[2] = "
使用以下代码, php explode at capital letters? 您可以将字符串分解为大写。但是如何仅在第一个大写字母上分解它呢?假设您有 helloThereMister。我想要你好T
我正在使用 PHP 制作一个脚本语言解释器。我有该脚本语言的代码: write {Hello, World!} in either the color {blue} or {red} or {#00A
使用以下代码, php explode at capital letters? 您可以按大写分解字符串。但是你如何只在第一个大写字母上分解它呢?假设您有 helloThereMister。我想得到 h
我正在使用 PHP 制作一个脚本语言解释器。我有该脚本语言的代码: write {Hello, World!} in either the color {blue} or {red} or {#00A
请引用下面的代码。 $dArr = 'document.write(volunteerDist);'; $dArr 获取 volunteerDist 的值。 echo $dArr 打印值 4.1,9.
"; } ?> 输出错误 用新行将其分解,但不显示正确的 strlen 。 输出 1 2 2 2 实际输出应该是 1 1 1 1 我哪里错了??? 最佳答案 '/[;:,\r\n]+/' 确保它是\n
大家好,我的代码在下面。我使用 preg_split 将字符串显示为数组,并使用逗号作为分隔符。 ', print_r(preg_split($pattern,$string),1), ''; ?>
我从 Betfair 复制并粘贴足球比赛,例如“Bournemouth v Tottenham”,这存储在 MySQL 数据库中。但是,当我尝试时: preg_split('/\s+/', $row
我需要一些帮助。我想要的是忽略特定字符串中的逗号。这是一个逗号分隔的文件 csv,但名称有一个逗号,我需要忽略它。 我得到的是 结果是 $result (php code): 'hypertext
寻求帮助! 我需要在最后一次出现空格时拆分字符串... 例如“Great Neck NY” 我需要将它分开,这样我就有了“Great Neck”和“NY” 我在使用 preg_split 和基本内容时
我正在尝试让 preg_split() 按空格/制表符拆分以下 2 个字符串(需要对两者都起作用)。 autodiscover.microsoft.com. 3600 IN A 131.107.1
我想在每次找到特殊字符时拆分一个字符串。 我这样做了: preg_split("[\\W]", $str); 但这仍然允许下划线(也许更多?) 是否可以只说允许 a-z A-Z 和数字并拆分任何不是其
我正在尝试用空格而不是单引号之间的 pref_split 字符串。 这是我正在使用的字符串: 'physical memory %'=92%;99;100 'physical memory'=29.6
我有数千个文本文件要解析,它是一个遵循特定模式的产品目录。 它有两个序列号,其中一个我将整个文本拆分成一个数组,每个键一个产品。 问题是我在 preg_split 中使用的序列号从产品中删除了,而我需
我是一名优秀的程序员,十分优秀!