标签: textmatching

Regexp对电子邮件地址的识别很难吗?

我最近在某个地方读过写一个正则表达式来匹配一个电子邮件地址,考虑到标准的所有变化和可能性是非常困难的,并且比最初假设的要复杂得多.

任何人都可以提供一些见解,为什么会这样?

是否有任何已知且经过验证的regexp实际完成这一点?

使用正则表达式匹配电子邮件地址有哪些好的替代方法?

regex email validation textmatching

59
推荐指数
7
解决办法
2万
查看次数

如何在 cypress 中执行 `cy.notContains(text)`?

我可以检查 cypress 中是否存在文本cy.contains('hello'),但现在我从页面中删除 hello,我想检查 hello 不存在,我该怎么做cy.notContains('hello')

javascript textmatching matcher cypress

18
推荐指数
2
解决办法
2万
查看次数

如何使用布尔搜索语法进行Java字符串匹配?

我正在寻找一个可以接受用户查询和文本的Java/Scala库,如果有匹配则返回.

我正在处理一个信息流,即:Twitter Stream,并且无法负担使用批处理过程,我需要实时评估每条推文,而不是通过Lucene RAMDisk对其进行索引并稍后查询.

可以使用ANTLR创建一个解析器/词法分析器,但这是常见的用法,我不相信之前没有人创建过lib.

来自TextQuery Ruby库的一些示例正是我所需要的:

    TextQuery.new("'to be' OR NOT 'to_be'").match?("to be")   # => true

    TextQuery.new("-test").match?("some string of text")      # => true
    TextQuery.new("NOT test").match?("some string of text")   # => true

    TextQuery.new("a AND b").match?("b a")                    # => true
    TextQuery.new("a AND b").match?("a c")                    # => false

    q = TextQuery.new("a AND (b AND NOT (c OR d))")
    q.match?("d a b")                                         # => false
    q.match?("b")                                             # => false
    q.match?("a b cdefg")                                     # => true

    TextQuery.new("a~").match?("adf")                         # => true
    TextQuery.new("~a").match?("dfa") …
Run Code Online (Sandbox Code Playgroud)

java scala textmatching booleanquery

13
推荐指数
1
解决办法
1940
查看次数

搜索空间,连字符,套管和标点符号的各种组合

我的架构:

<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
  <analyzer>
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.StopFilterFactory"
            ignoreCase="true"
            words="stopwords.txt"
            enablePositionIncrements="true"
            />
    <filter class="solr.WordDelimiterFilterFactory"
            generateWordParts="1" generateNumberParts="1"
            catenateWords="1" catenateNumbers="1" catenateAll="0"
            splitOnCaseChange="1" splitOnNumerics="0"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.SnowballPorterFilterFactory" language="English"
            protected="protwords.txt"/>
  </analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)

我想要合作的组合:

"沃尔玛","沃尔玛","沃尔玛","沃尔玛","沃尔玛"

鉴于这些字符串中的任何一个,我想找到另一个字符串.

因此,有以下25种组合:

(第一列表示搜索的输入文本,第二列表示预期的匹配)

(Walmart,Walmart)
(Walmart,WalMart)
(Walmart,Wal Mart)
(Walmart,Wal-Mart)
(Walmart,Wal-mart)
(WalMart,Walmart)
(WalMart,WalMart)
(WalMart,Wal Mart)
(WalMart,Wal-Mart)
(WalMart,Wal-mart)
(Wal Mart,Walmart)
(Wal Mart,WalMart)
(Wal Mart,Wal Mart)
(Wal Mart,Wal-Mart)
(Wal Mart,Wal-mart)
(Wal-Mart,Walmart)
(Wal-Mart,WalMart)
(Wal-Mart,Wal Mart)
(Wal-Mart,Wal-Mart)
(Wal-Mart,Wal-mart)
(Wal-mart,Walmart)
(Wal-mart,WalMart)
(Wal-mart,Wal Mart)
(Wal-mart,Wal-Mart)
(Wal-mart,Wal-mart)
Run Code Online (Sandbox Code Playgroud)

我的架构的当前限制:

1. "Wal-Mart" -> "Walmart",
2. "Wal Mart" -> …
Run Code Online (Sandbox Code Playgroud)

lucene solr textmatching string-matching solrj

11
推荐指数
2
解决办法
2145
查看次数

Postgresql - 将文本转换为ts_vector

对不起基本问题.

我有一个包含以下列的表.

      Column |  Type   | Modifiers 
     --------+---------+-----------
      id     | integer | 
      doc_id | bigint  | 
      text   | text    | 
Run Code Online (Sandbox Code Playgroud)
  • 我试图在'文本'上进行文本匹配(第3列)
  • 当我尝试在文本列上进行文本匹配时收到错误消息.说ts_vector的字符串太长了.

我只想要包含"其他事件"字样的观察

    SELECT * FROM eightks\d
    WHERE to_tsvector(text) @@ to_tsquery('other_events')
Run Code Online (Sandbox Code Playgroud)

我知道ts_vector的长度有限制.

错误信息

   ERROR:  string is too long for tsvector (2368732 bytes, max 1048575 bytes)
Run Code Online (Sandbox Code Playgroud)

如何将文本列转换为ts_vector并解决我的大小限制问题?或者,如何排除最大大小的观察?

Postgres版本9.3.5.0

以下是限制限制的参考

谢谢

postgresql textmatching

7
推荐指数
1
解决办法
1220
查看次数

数据比较

我们有一个SQL Server表,其中包含公司名称,地址和联系人姓名(以及其他名称).

我们会定期从外部来源收到数据文件,要求我们与此表格进行匹配.不幸的是,数据略有不同,因为它来自完全不同的系统.例如,我们有"123 E. Main St." 我们收到"东大街123号".另一个例子,我们有"Acme,LLC",文件包含"Acme Inc.".另一个是,我们有"埃德史密斯",他们有"爱德华史密斯"

我们有一个遗留系统,它利用一些相当复杂的CPU密集型方法来处理这些匹配.一些涉及纯SQL,另一些涉及Access数据库中的VBA代码.目前的系统很好但不完美,而且很麻烦且难以维护

这里的管理层希望扩大其使用范围.将继承系统支持的开发人员希望用更灵活的解决方案替换它,这需要更少的维护.

是否有一种普遍接受的方式来处理这种数据匹配?

sql-server textmatching

5
推荐指数
1
解决办法
411
查看次数

Python字典替换密钥中的空格

我有一个字符串和一个字典,我必须替换该文本中每个出现的dict键.

text = 'I have a smartphone and a Smart TV'
dict = {
    'smartphone': 'toy',
    'smart tv': 'junk'
}
Run Code Online (Sandbox Code Playgroud)

如果键中没有空格,我会将文本分成单词并逐个与dict进行比较.看起来像O(n).但是现在钥匙里面有空间,所以事情更加复杂.请建议我这样做的好方法,请注意密钥可能与文本不匹配.

更新

我已经想到了这个解决方案,但效率不高.O(m*n)或更多......

for k,v in dict.iteritems():
    text = text.replace(k,v) #or regex...
Run Code Online (Sandbox Code Playgroud)

python algorithm dictionary replace textmatching

5
推荐指数
1
解决办法
960
查看次数

如何匹配文本中的URI?

如何在一个文本块中发现URI?

我们的想法是将这些文本转换为链接.如果只考虑http(s)和ftp(s)方案,这很简单; 但是,我猜测一般问题(考虑tel,mailto和其他URI方案)要复杂得多(如果可能的话).

如果可能的话,我更喜欢C#中的解决方案.谢谢.

uri textmatching

2
推荐指数
1
解决办法
6346
查看次数

如何使用TSQL计算varchar中的varchar

计算varchar中varchar出现次数的最佳方法是什么?

我宁愿不循环文本以找到某些组合.

这个选择只找到第一个

SELECT CASE WHEN CHARINDEX('!','HOW MANY TIMES IS ! IN THIS TEXT ? THIS IS MY QUESTION !' ) > 0 THEN 1 ELSE 0 END
Run Code Online (Sandbox Code Playgroud)

返回1

我需要一种方法来查找匹配的总数

TABLE DATA
SEARCHTEXT     LONGTEXT
!              HOW MANY TIMES IS ! IN THIS TEXT ? THIS IS MY QUESTION !
HELLO          HELLO HELLO HELLO HELLO HELLO HELLO
L              HELLO HELLO HELLO HELLO HELLO HELLO
e              more testdata
Run Code Online (Sandbox Code Playgroud)

预期结果

Count SEARCHTEXT  LONGTEST
2     !           MANY TIMES IS ! IN THIS TEXT ? …
Run Code Online (Sandbox Code Playgroud)

sql t-sql textmatching

2
推荐指数
1
解决办法
2353
查看次数