Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正则表达式从Java中的wikimarkup页面获取混合链接_Java_Regex_Wiki Markup - Fatal编程技术网

正则表达式从Java中的wikimarkup页面获取混合链接

正则表达式从Java中的wikimarkup页面获取混合链接,java,regex,wiki-markup,Java,Regex,Wiki Markup,我必须检查以下类型的字符串: 市内有[[公共交通]]设施吗?一些[[次]] 并仅返回相关零件-即 [[公共交通]] 一些[[次]] 我正在使用这个正则表达式:\\w*?\[\\[(.*?\]\\]\]\\w*? 当搜索文本包含新行和特殊字符时,它似乎不适用于上面给出的示例和扩展示例。您能指出我应该如何编写正则表达式吗?您可以将此正则表达式与DOTALL开关(?s)一起使用: (?s)\\s*\[\\[.*?\\]\\]\\s* System.out.println(“城市中有[[公共交通]]设施

我必须检查以下类型的字符串:

市内有[[公共交通]]设施吗?一些[[次]]

并仅返回相关零件-即

[[公共交通]]
一些[[次]]

我正在使用这个正则表达式:
\\w*?\[\\[(.*?\]\\]\]\\w*?


当搜索文本包含新行和特殊字符时,它似乎不适用于上面给出的示例和扩展示例。您能指出我应该如何编写正则表达式吗?

您可以将此正则表达式与
DOTALL
开关
(?s)
一起使用:

(?s)\\s*\[\\[.*?\\]\\]\\s*
System.out.println(“城市中有[[公共交通]]设施吗?一些[[次]]”。replaceAll(
“(?s)\\s*\[\\[.*?\]\\]\\s*,”);
输出:

has <[[public transport]]ation> in city? <some[[times]]>
城市里有什么?

默认情况下
与换行符不匹配:

您需要切换单线模式

(?s)\\S*\\[\\[.*?\\]\\]\\S*
 ^

在单行模式下,
也将匹配新行

什么是
做什么?空白?
$0
表示匹配的字符串,我使用
向您展示了此匹配的工作示例。
(?s)\\S*\\[\\[.*?\\]\\]\\S*
 ^