2017-07-17 59 views
-1

有一个用于捕获用户数据的单词模板。提供的值需要使用正则表达式提取。模板的部分如下所示:正则表达式匹配组,包含变量前后字符

located in ________________ County 

因此,当用户在数据罢了,输出可以有不同数量的_前端和后端字符。例如:

located in _______San Diego________ County 

located in ________San Diego_______ County 

located in _San Diego________ County 

located in ________San Diego_____ County 

located in San Diego County 

目标是使用正则表达式从上面显示的任何示例中提取圣地亚哥。

+1

欢迎来到Stack Overflow!你目前的正则表达式是什么样的?你是否被挂在特定的地方?或者根本不知道从哪里开始? – sniperd

+0

它可能会帮助你指定在哪种语言或你neee实现(默认正则表达式语法不同程序/语言之间) – Jay

+0

我已经试过向前看,后面。不幸的是,这是行不通的,因为破折号的数量会有所不同。我假设我需要使用匹配组。但我不知道从哪里开始。 我不确定这门语言。我正在使用提取数据的工具。他们提取数据的方式之一是使用正则表达式。我不确定底层语言是什么。如果我猜测,我会说底层语言是C# – Hootan

回答

0

_+([^_]+)_+

匹配组将匹配_小号

+0

这是行不通的,因为还有其他药剂与_s具有相同的模式。另外,我想在提取的文本中排除_s – Hootan

+0

如果您只是提取第一个匹配组(如'('')'中所定义的那样,它们将被排除。如果你告诉我你正在使用的语言,我可以告诉你如何去做... 作为替代方案,你可以从结果中修剪()_。 关于由于流浪_在文字中的错误匹配...是的,这是一个问题。可能是一个破坏交易的手段。 – Jay

+0

如果我在代码中这样做,它会简单得多。这个正则表达式是我必须提供给具有正则表达式提取功能的工具。 – Hootan

0

任何款项的任何作为周杰伦的回答的变体。使用前瞻和后面不捕获_(发现不止一个_是不相关的信息);并使用更独特的捕捉组,以便只有字母数字,空格和制表符大声朗读。这将捕获位于同一句子和文本行中的_之间的任何文本。如果输入是有限长度,则可以用{1,#}代替+,其中#是输入的长度。

(?<=_)[A-Za-z0-9 \t]+(?=_)

为了提高过滤超出需要的方式来告诉从有效组流浪组更多的知识。