English 中文(简体)
Perl 定期表达中是否有定论?
原标题:Weighted disjunction in Perl Regular Expressions?

I am fairly experienced with regular expressions, but I am having some difficulty with a current application involving disjunction.

我的情况是: 我需要在定期发言的基础上,在发言内容的“验证内容”的基础上,将发言内容分成部分——例如“状态”、“道路”或“布莱德”-IF等类似英语例子,我们在演讲中写了这些话。 想象我们有像以下地址一样的地址(而且这永远不会有英文),我们具体说明了每个名字之后的识别类型。

美国加利福尼亚州 STATE San Francisco CITY Mission STREET 345 NUMBER

(在身份识别器中,我称之为“身份识别器”。)

We want to parse it into:
United States COUNTRY
California STATE
San Francisco CITY
Mission STREET
245 NUMBER

“科索沃”,这肯定是为了英语,但这里的捕获量如下: 我正在用中国的数据进行工作,事实上,这种身份识别特征的风格随时发生。 以下实例:

云南-省 ; 丽江-市 ; 古城-区 ; 西安-街 ; 杨春-巷 ; Yunnan-Province ; LiJiang-City ; GuCheng-District ; Xi An-Street ; Yangchun-Alley

这很容易在可能的候选人识别名字上贴上足够微薄的同声,并单独列入一个不受欢迎的名单。

中国的“省一级”实体如下:

省 (Province) , 自治区 (Autonomous Region) , 市 (Municipality)

因此,我迄今为止的监管机构认为:

(.+?(?:(?:省)|(?:自治区)|(?:市)))

为了对地址的不同部分进行说明,我有一系列内容。 例如,与城市相对应的下一个层次是:

(.+?(?:(?:地区)|(?:自治州)|(?:市)|(?:盟)))

因此,与省实体相匹配,随后是城市实体:

(.+?(?:(?:省)|(?:自治区)|(?:市)))(.+?(?:(?:地区)|(?:自治州)|(?:市)|(?:盟)))

With named capture groups:
(?<Province>.+?(?:(?:省)|(?:自治区)|(?:市)))(?<City>.+?(?:(?:地区)|(?:自治州)|(?:市)|(?:盟)))

For the above, this yields:
$+{Province} = 云南省
$+{City} = 丽江市

这一切都是好的,而且非常好。 然而,问题在于我试图说明哪些识别标志可以替代其他识别标志。 例如,一个共同的街道实体是“>村”,这意味着村组织委员会。 在我希望分开的一套地址中,并非每个地址都全部写出。 事实上,我也发现“我们”和“公正”的意思。

问题? 如果我对这些因素有纯粹的禁止,我们有以下条件:

(?<Street>.+?(?:(?:村委会)|(?:村委)|(?:村)))

确实发生的情况是,如果有一个实体——英国乡村组织委员会(Baoding 村组织),那么这个“血腥”组织就会停止在孤儿院,把它称作我们的贫穷日,因为它是潜在的分裂分子之一。

Imagine an English equivalent like the following:
(?<Animal>.+?(?:(?:Cat)|(?:Elephant)|(?:CatElephant)|(?:City)))

We have two input strings:
1. "crap catelephant crap city", where we wanted "Crap catelephant" and "crap city" 2. "crap catelephant city" , where we wanted "crap cat" "elephant city"

阁下说,解决办法是让身份认同者抓住贪.。 但! 各实体有相同的识别资料,并不相同。

例如。 它只是“城市”。 但在中国,有县级、省一级和市级城市。 如果这种特性在扼杀中发生两次,特别是在两个相邻的实体,则 gr脏搜查会错误地把贪 gr与第一个实体混为一谈。 如下:

广东-省 ; 江门-市 ; 开平-市 ; 三埠-区 石海管-区
Guangdong-province ; Jiangmen-City ; Kaiping-City ; Sanbu-District ; Shihaiguan-District

(上文注,已对此进行了分类。) 原始数据只能具有一系列的加固特性。

The match for a greedy search would be
江门市开平市

这样做是错误的,因为两个相邻实体应当分开组成。 一旦进入省级城市,就有一个县级城市。

回到原来的点,我感谢你今天阅读,是否有办法对非强制性实体进行加权? 我要首先找到最高“加权”标识。 缩略语 在初步实验中,reg子公司显然在寻找不受欢迎的配对物方面有好处。 这是否是一个有效的假设? 我是否应该首先把最常见的身份识别资料列入不受欢迎的清单?

如果我失去了与中国有关的细节,我道歉,如果需要,可以进一步澄清。 例子实际上是否必须是中国-我,更一般地说,是关于军校与军校之间的机械师的问题——它以何种顺序偏爱军政府实体,以及它如何决定何时“每天”进行 la问?

In a way, is there some sort of middle ground between lazy and greedy searches? Find the smallest bit you can find before the longest / highest weighted disjunctive entity? Be lazy, but put in that little bit of extra effort if you can for the sake of thoroughness? (Incidentally, my work philosophy in college?)

最佳回答
问题回答

暂无回答




相关问题
Why does my chdir to a filehandle not work in Perl?

When I try a "chdir" with a filehandle as argument, "chdir" returns 0 and a pwd returns still the same directory. Should that be so? I tried this, because in the documentation to chdir I found: "...

How do I use GetOptions to get the default argument?

I ve read the doc for GetOptions but I can t seem to find what I need... (maybe I am blind) What I want to do is to parse command line like this myperlscript.pl -mode [sth] [inputfile] I can use ...

Object-Oriented Perl constructor syntax and named parameters

I m a little confused about what is going on in Perl constructors. I found these two examples perldoc perlbot. package Foo; #In Perl, the constructor is just a subroutine called new. sub new { #I ...

Where can I find object-oriented Perl tutorials? [closed]

A Google search yields a number of results - but which ones are the best? The Perl site appears to contain two - perlboot and perltoot. I m reading these now, but what else is out there? Note: I ve ...

热门标签