【发布时间】:2018-03-20 17:48:05
【问题描述】:
我有一个多行字符串,其中包含换行符 (\n) 和不间断空格字符 (\u00A0),后者为了便于阅读而显示:
示例 1
dog
\u00A0cat
mat
示例 2
bat
can
\u00A0boo
我想仅在 '\n' 的第一个实例后跟 '\u00A0' 时返回 java 正则表达式匹配
因此:
- 样本 1 匹配。
- 示例 2 不会因为 'bat' 之后的第一个 '\n' 后跟 'can' 而不是 '\u00A0'。
我正在为此苦苦挣扎,我所能得到的只是一个简单的两个样本的匹配项: \n\u00A0 根据下面的屏幕截图。任何建议表示赞赏,我认为我需要使用负面的展望,但无法弄清楚如何。
谢谢。
【问题讨论】:
-
不确定您是否打算使用
<pre>在 Stackoverflow 上定义代码块,或者您是否打算使用正确的 markdown as per this help page -
另外,您是在读取文件吗?因为这样你就可以使用循环读取每一行,如果找到第一个匹配项,就可以从循环中中断。
-
试试
s.matches(".*\n\\u00A0(?s).*") -
或者
s.matches("[^\n]*\n\u00A0(?s:.*)")如果你想更明确 -
@elworthy 您必须选择使用 JavaScript 选项进行测试。在 regex101 上测试这样的模式时,您应该使用 PHP/PCRE。