草庐IT

php - 删除 str_word_count 的一些引号

coder 2024-04-18 原文

我正在使用这个函数:http://www.seoreviewtools.com/multi-keyword-density-checker-php-script/但是我在使用奇怪的法语单词时遇到了一些问题。 (在这里查看我的修改版本:http://pastebin.com/m6PjsizX)

如您所知,str_word_count() 不适用于 UTF-8 字符,可以使用第三个参数来“忽略”这些字符。但是,我没有找到一种方法让它可以使用引号(在法语中很常见)。

法语单引号的三种情况:

  1. 一个 letter_quote_word(例如:j'aime、d'habitude、l'avion、s'intégrer)
  2. 一句话引述(例如:Aujourd'hui、prud'homme、quelqu'un)
  3. 主要是在品牌名称中,单词末尾有引号(例如 Super'、Vendu')

我想删除一些引号以便处理 str_word_count() 而不会出错(可能使用正则表达式和 preg_replace())以便得到这个结果:

$str = "J'aime la plage d'aujourd'hui, quelqu'un aimerait-il aller chez Super' pour voir l'avion bleue ?");
MagicFunction($str);
$str = str_word_count($str);
echo $str;

aime la plage aujourd'hui, quelqu'un aimerait-il aller chez Super' pour voir avion bleu

此外还有很多引号('、`、'、' 等),我希望它能处理所有类型的引号。

你有解决方案让它以这种方式工作吗?

谢谢!

最佳答案

你似乎想要

  • 当两个单词(j'aimel'huile)的第一个字母代表缩短的单词时,去掉撇号
  • 保留单词内部的撇号,不包括其中的第二个和最后一个位置(如aujourd'huiquelqu'un super ').

我建议采用一种方法来删除后跟撇号的单词开头的每一个字母。所有其他情况是当 ' 应该在单词的内部,因此必须保持完整。

'~\b\p{L}[\'`‘’]\b~u'

参见 regex demo

IDEONE demo :

$re = '~\b\p{L}[\'`‘’]\b~u'; 
$str = "J'aime la plage d'aujourd'hui, quelqu‘un aimerait-il aller chez Super’ pour voir l`avion bleue ? l'école L'"; 
$result = preg_replace($re, "", $str);
echo $result;
// => aime la plage aujourd'hui, quelqu‘un aimerait-il aller chez Super’ pour voir avion bleue ? école L'

注意,在处理 Unicode 字符串时,您必须在每次调用 preg_replace 时使用 /u 修饰符。

关于php - 删除 str_word_count 的一些引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35357365/

有关php - 删除 str_word_count 的一些引号的更多相关文章

  1. ruby-on-rails - Rails 3 I18 : translation missing: da. datetime.distance_in_words.about_x_hours - 2

    我看到这个错误:translationmissing:da.datetime.distance_in_words.about_x_hours我的语言环境文件:http://pastie.org/2944890我的看法:我已将其添加到我的application.rb中:config.i18n.load_path+=Dir[Rails.root.join('my','locales','*.{rb,yml}').to_s]config.i18n.default_locale=:da如果我删除I18配置,帮助程序会处理英语。更新:我在config/enviorments/devolpment

  2. ruby - 用逗号、双引号和编码解析 csv - 2

    我正在使用ruby​​1.9解析以下带有MacRoman字符的csv文件#encoding:ISO-8859-1#csv_parse.csvName,main-dialogue"Marceu","Giveittohimóhe,hiswife."我做了以下解析。require'csv'input_string=File.read("../csv_parse.rb").force_encoding("ISO-8859-1").encode("UTF-8")#=>"Name,main-dialogue\r\n\"Marceu\",\"Giveittohim\x97he,hiswife.\"\

  3. ruby-on-rails - 如何从 format.xml 中删除 <hash></hash> - 2

    我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为

  4. ruby - 我可以使用 Ruby 从 CSV 中删除列吗? - 2

    查看Ruby的CSV库的文档,我非常确定这是可能且简单的。我只需要使用Ruby删除CSV文件的前三列,但我没有成功运行它。 最佳答案 csv_table=CSV.read(file_path_in,:headers=>true)csv_table.delete("header_name")csv_table.to_csv#=>ThenewCSVinstringformat检查CSV::Table文档:http://ruby-doc.org/stdlib-1.9.2/libdoc/csv/rdoc/CSV/Table.html

  5. ruby - 我可以使用 aws-sdk-ruby 在 AWS S3 上使用事务性文件删除/上传吗? - 2

    我发现ActiveRecord::Base.transaction在复杂方法中非常有效。我想知道是否可以在如下事务中从AWSS3上传/删除文件:S3Object.transactiondo#writeintofiles#raiseanexceptionend引发异常后,每个操作都应在S3上回滚。S3Object这可能吗?? 最佳答案 虽然S3API具有批量删除功能,但它不支持事务,因为每个删除操作都可以独立于其他操作成功/失败。该API不提供任何批量上传功能(通过PUT或POST),因此每个上传操作都是通过一个独立的API调用完成的

  6. ruby-on-rails - 如何生成传递一些自定义参数的 `link_to` URL? - 2

    我正在使用RubyonRails3.0.9,我想生成一个传递一些自定义参数的link_toURL。也就是说,有一个articles_path(www.my_web_site_name.com/articles)我想生成如下内容:link_to'Samplelinktitle',...#HereIshouldimplementthecode#=>'http://www.my_web_site_name.com/articles?param1=value1¶m2=value2&...我如何编写link_to语句“alàRubyonRailsWay”以实现该目的?如果我想通过传递一些

  7. ruby - 如何安全地删除文件? - 2

    在Ruby中是否有Gem或安全删除文件的方法?我想避免系统上可能不存在的外部程序。“安全删除”指的是覆盖文件内容。 最佳答案 如果您使用的是*nix,一个很好的方法是使用exec/open3/open4调用shred:`shred-fxuz#{filename}`http://www.gnu.org/s/coreutils/manual/html_node/shred-invocation.html检查这个类似的帖子:Writingafileshredderinpythonorruby?

  8. ruby-on-rails - 标准化文件名的字符串,删除重音和特殊字符 - 2

    我正在尝试找到一种方法来规范化字符串以将其作为文件名传递。到目前为止我有这个:my_string.mb_chars.normalize(:kd).gsub(/[^\x00-\x7F]/n,'').downcase.gsub(/[^a-z]/,'_')但第一个问题:-字符。我猜这个方法还有更多问题。我不控制名称,名称字符串可以有重音符、空格和特殊字符。我想删除所有这些,用相应的字母('é'=>'e')替换重音符号,并将其余的替换为'_'字符。名字是这样的:“Prélèvements-常规”“健康证”...我希望它们像一个没有空格/特殊字符的文件名:“prelevements_routin

  9. ruby-on-rails - 为什么在 Rails 5.1.1 中删除了 session 存储初始化程序 - 2

    我去了这个website查看Rails5.0.0和Rails5.1.1之间的区别为什么5.1.1不再包含:config/initializers/session_store.rb?谢谢 最佳答案 这是删除它的提交:Setupdefaultsessionstoreinternally,nolongerthroughanapplicationinitializer总而言之,新应用没有该初始化器,session存储默认设置为cookie存储。即与在该初始值设定项的生成版本中指定的值相同。 关于

  10. ruby - 找一些句子 - 2

    我想找到在某些文本中找到一些(让它是两个)句子的好方法。什么会更好-使用正则表达式或拆分方法?你的想法?应JeremyStein的要求-有一些例子示例:输入:ThefirstthingtodoistocreatetheCommentmodel.We’llcreatethisinthenormalway,butwithonesmalldifference.IfwewerejustcreatingcommentsforanArticlewe’dhaveanintegerfieldcalledarticle_idinthemodeltostoretheforeignkey,butinthis

随机推荐