小编Wik*_*żew的帖子

如何识别拼写不同的相似单词

我想从数据库中筛选出重复的客户名称.单个客户可能有多个具有相同名称的系统条目,但拼写上的差异很小.所以这是一个例子:一个名为Brook的客户可能有三个条目进入系统:

  1. 布鲁克伯塔
  2. 布鲁克伯塔
  3. 比鲁克贝塔

我们假设我们将此名称放在一个数据库列中.我想知道识别此类重复的不同机制,例如100,000条记录.我们可以在C#中使用正则表达式来遍历所有记录或其他一些模式匹配技术,或者我们可以将这些记录导出到最适合此类查询的内容(具有正则表达式功能的SQL)).

这就是我认为的解决方案

  • 编写一个C#代码来遍历每条记录
  • 只按顺序获取辅音字母(在上面的例子中:BrKBrt)
  • 从其他记录中搜索相同的辅音模式,考虑类似的声音字母,如(C,K)(C,S),(F,PH)

所以请转发任何想法.

c# sql pattern-matching linq-to-sql

6
推荐指数
1
解决办法
3959
查看次数

连接特殊字符" - "的相邻字符

我正在使用c#.net开发一个应用程序,其中我需要如果用户输入的输入包含字符' - '(连字符),那么我想连接连字符( - )的直接邻居,例如,如果用户输入

A-B-C then i want it to be replaced with ABC
AB-CD then i want it to be replaced like BC
ABC-D-E then i want it to be replaced like CDE
AB-CD-K then i want it to be replaced like BC and DK both separated by keyword and
Run Code Online (Sandbox Code Playgroud)

得到这个后,我必须准备我的查询到数据库.

我希望我能解决问题,但如果需要更多澄清,请告诉我.任何帮助将不胜感激.

谢谢,Devjosh

.net c# regex string

6
推荐指数
1
解决办法
1417
查看次数

VS13正则表达式中的错误:替代品的订单错误?

我需要一个正则表达式来捕获括号之间的参数.不应该捕获论证之前和之后的空白.例如,"( ab & c )"应该返回"ab & c".如果需要前导或尾随空白,则可以将参数括在单引号中.所以,"( ' ab & c ' )"应该回来" ab & c ".

wstring String = L"( ' ab & c ' )";
wsmatch Matches;
regex_match( String, Matches, wregex(L"\\(\\s*(?:'(.+)'|(.+?))\\s*\\)") );
wcout << L"<" + Matches[1].str() + L"> " + L"<" + Matches[2].str() + L">" + L"\n";
// Results in "<> < ' ab & c '>", not OK
Run Code Online (Sandbox Code Playgroud)

似乎第二种选择匹配,但它也占据了第一个引用前面的空间!应该\s在开括号之后抓住它.

删除第二个替代方案:

regex_match( String, Matches, wregex(L"\\(\\s*(?:'(.+)')\\s*\\)") );
wcout …
Run Code Online (Sandbox Code Playgroud)

c++ regex visual-studio-2013

6
推荐指数
1
解决办法
79
查看次数

如何评估正则表达式OR运算符

T-SQL中,我使用NEWID()函数生成了UNIQUEIDENTIFIER.例如:

723952A7-96C6-421F-961F-80E66A4F29D2
Run Code Online (Sandbox Code Playgroud)

然后,-删除所有破折号(),它看起来像这样:

723952A796C6421F961F80E66A4F29D2
Run Code Online (Sandbox Code Playgroud)

现在,我需要UNIQUEIDENTIFIER使用以下格式xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx将上面的字符串转换为有效并再次设置破折号.

为了实现这一点,我使用这个正则表达式SQL CLRC# RegexMatches函数实现,^.{8}|.{12}$|.{4}这给了我:

SELECT *
FROM [dbo].[RegexMatches] ('723952A796C6421F961F80E66A4F29D2', '^.{8}|.{12}$|.{4}')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

使用上面的内容,我可以轻松地再次构建一个正确的,UNIQUEIDENTIFIER但我想知道如何OR在正则表达式中计算运算符.例如,以下内容不起作用:

SELECT *
FROM [dbo].[RegexMatches] ('723952A796C6421F961F80E66A4F29D2', '^.{8}|.{4}|.{12}$')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

它是确保第一个正则表达式将首先匹配的开始和字符串的结尾,那么其他的值,并且总是在这个顺序返回比赛(我会有问题,如果举例来说,96C6在后匹配421F).

.net c# regex sql-server sql-server-2012

6
推荐指数
1
解决办法
150
查看次数

6
推荐指数
1
解决办法
1485
查看次数

在第二次出现某个字符串后排除所有内容

我有以下字符串

string <- c('a - b - c - d',
            'z - c - b',
            'y',
            'u - z')
Run Code Online (Sandbox Code Playgroud)

我想将它分配,以便第二次出现' - '后的所有内容都被丢弃.

结果是这样的:

> string
[1]  "a - b" "z - c" "y"     "u - z"
Run Code Online (Sandbox Code Playgroud)

我用过substr(x = string, 1, regexpr(string, pattern = '[^ - ]*$') - 4),但它排除了最后一次' - ',这不是我想要的.

regex r

6
推荐指数
1
解决办法
2461
查看次数

Java Regex:将整个单词与单词边界匹配

我正在尝试使用Java检查字符串是否包含整个单词.以下是一些例子:

Text : "A quick brown fox"
Words:
"qui" - false
"quick" - true
"quick brown" - true
"ox" - false
"A" - true
Run Code Online (Sandbox Code Playgroud)

以下是我的代码:

String pattern = "\\b(<word>)\\b";
String s = "ox";
String text = "A quick brown fox".toLowerCase();
System.out.println(Pattern.compile(pattern.replaceAll("<word>", s.toLowerCase())).matcher(text).find());
Run Code Online (Sandbox Code Playgroud)

它与我在上面的例子中提到的字符串一样正常工作.但是,如果输入字符串包含类似等字符%,则会得到不正确的结果(,例如:

Text : "c14, 50%; something (in) bracket"
Words:
"c14, 50%;" : false
"(in) bracket" : false
Run Code Online (Sandbox Code Playgroud)

它与我的regex模式有关(或者我正在做错误的整个模式匹配).谁能建议我一个更好的方法.

java regex string

6
推荐指数
1
解决办法
983
查看次数

使用正则表达式(括号)进行标记

我有以下文字:

I don't like to eat Cici's food (it is true)

我需要将它标记为

['i', 'don't', 'like', 'to', 'eat', 'Cici's', 'food', '(', 'it', 'is', 'true', ')']

我发现以下正则表达式(['()\w]+|\.)拆分如下:

['i', 'don't', 'like', 'to', 'eat', 'Cici's', 'food', '(it', 'is', 'true)']

如何从令牌中取出括号并使其成为自己的令牌?

谢谢你的想法。

regex string split tokenize

6
推荐指数
1
解决办法
7063
查看次数

如何修复“类型错误:不能混合 str 和非 str 参数”?

我正在编写一些抓取代码并遇到上述错误。我的代码如下。

# -*- coding: utf-8 -*-
import scrapy
from myproject.items import Headline


class NewsSpider(scrapy.Spider):
    name = 'IC'
    allowed_domains = ['kosoku.jp']
    start_urls = ['http://kosoku.jp/ic.php']

    def parse(self, response):
        """
        extract target urls and combine them with the main domain
        """
        for url in response.css('table a::attr("href")'):
            yield(scrapy.Request(response.urljoin(url), self.parse_topics))

    def parse_topics(self, response):
        """
        pick up necessary information
        """
        item=Headline()
        item["name"]=response.css("h2#page-name ::text").re(r'.*??????????')
        item["road"]=response.css("div.ic-basic-info-left div:last-of-type ::text").re(r'.*?$')
        yield item
Run Code Online (Sandbox Code Playgroud)

当我在 shell 脚本上单独执行它们时,我可以获得正确的响应,但是一旦它进入程序并运行,它就不会发生。

    2017-11-27 18:26:17 [scrapy.core.scraper] ERROR: Spider error processing <GET http://kosoku.jp/ic.php> (referer: None)
Traceback (most recent call …
Run Code Online (Sandbox Code Playgroud)

python string typeerror scrapy

6
推荐指数
1
解决办法
8014
查看次数

str_replace不会替换所有出现,但gsub呢?

我试图删除字符串中的括号,如下所示.

library(stringr)

x <- "(Verhoeff,1937)"

str_replace(string = x, pattern = "(\\()|(\\))", replacement = "")
[1] "Verhoeff,1937)"

gsub(pattern = "(\\()|(\\))", replacement = "", x = x)
[1] "Verhoeff,1937"
Run Code Online (Sandbox Code Playgroud)

str_replace似乎没有找到结束括号?有什么想法吗?

string replace r gsub stringr

6
推荐指数
1
解决办法
1343
查看次数