草庐IT

php explode : split string into words by using space a delimiter

coder 2023-06-14 原文

$str = "This is a    string";
$words = explode(" ", $str);

工作正常,但空格仍然进入数组:

$words === array ('This', 'is', 'a', '', '', '', 'string');//true

我宁愿只包含没有空格的单词,并将有关空格数的信息分开。

$words === array ('This', 'is', 'a', 'string');//true
$spaces === array(1,1,4);//true

刚刚补充:(1, 1, 4)表示第一个字后一个空格,第二个字后一个空格,第三个字后4个空格。

有什么办法可以快速做到吗?

谢谢。

最佳答案

要将字符串拆分为数组,您应该使用 preg_split :

$string = 'This is a    string';
$data   = preg_split('/\s+/', $string);

你的第二部分(计算空格):

$string = 'This is a    string';
preg_match_all('/\s+/', $string, $matches);
$result = array_map('strlen', $matches[0]);// [1, 1, 4]

关于php explode : split string into words by using space a delimiter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18638753/

有关php explode : split string into words by using space a delimiter的更多相关文章

  1. ruby CSV : How can I read a tab-delimited file? - 2

    CSV.open(name,"r").eachdo|row|putsrowend我得到以下错误:CSV::MalformedCSVErrorUnquotedfieldsdonotallow\ror\n文件名是一个.txt制表符分隔文件。我是专门做的。我有一个.csv文件,我转到excel,并将文件保存为.txt制表符分隔的文件。所以它是制表符分隔的。CSV.open不应该能够读取制表符分隔的文件吗? 最佳答案 尝试像这样指定字段分隔符:CSV.open("name","r",{:col_sep=>"\t"}).eachdo|row|

  2. ruby : How can I detect/intelligently guess the delimiter used in a CSV file? - 2

    我需要能够确定我的Ruby项目中的csv文件中使用了哪个分隔符(逗号、空格或分号)。我知道,csv模块中的Python中有一个Sniffer类,可用于猜测给定文件的分隔符。Ruby中有类似的东西吗?非常感谢任何形式的帮助或想法。 最佳答案 看起来py实现只检查几种方言:excel或excel_tab。因此,仅检查","或"\t"的简单实现是:COMMON_DELIMITERS=['","',"\"\t\""].freezedefsniff(path)first_line=File.open(path).firstreturnunle

  3. Ruby for in loop error with { } block delimiter - 2

    在Ruby语言中,以下在irb中工作forfruitin['apple','banana','cherry','date']doputsfruitend但是这个没有#errorforfruitin['apple','banana','cherry','date']{putsfruit}请注意引用以下block分隔符不要出错5.timesdo|i|puts"hello"+i.to_send5.times{|i|puts"hello"+i.to_s}编辑:我想我观察到的是用end代替{}的方式不一致有人可以解释为什么或者请指出我的错误吗? 最佳答案

  4. javascript - ng-list with line break as textarea delimiter in AngularJS >1.3 - 2

    我使用的是AngularJS1.3,其中ng-list的语法略有变化(例如,它不再支持正则表达式)我正在尝试指定一个换行符作为文本区域中ng-list的分隔符。但是它不能正常工作。我尝试将ng-list设置为ASCII换行符 但是问题来了。当内容被编辑时(即向文本区域内容添加一个字符),它开始在每个字符处中断。如何在AngularJS1.3中正确指定换行符作为ng-list的分隔符?plunker链接:http://plnkr.co/edit/F37yA0LRHQXMh4caP3A0 最佳答案 我们应该使用ng-trim="

  5. mysql - 如何从 GO 在 mysql 中创建触发器。似乎不支持使用 DELIMITER - 2

    从GO创建表不是问题。所有标准驱动程序支持。我正在尝试创建触发器,但这似乎并不容易......我试过res,err:=db.DBcon.Exec("DELIMITER$$")但那失败了有什么方法可以做到这一点? 最佳答案 啊,蠕动...那只是mysql-cli和Workbench特定的...我不必使用定界符。我可以使用创建触发器db.DBcon.Exec(`CREATEDEFINER=CURRENT_USERTRIGGERAFTERINSERTONFOREACHROWBEGIN;END;`)

  6. SQL优化: Xml or Delimited String - 2

    希望这只是一个涉及Sql2008查询性能优化的简单问题。我曾为在ETL流程和部分网站中大量使用存储过程的公司工作过。我见过他们需要根据一组有限的键值检索特定记录的场景。我已经看到它以3种不同的方式处理,如下面的伪代码所示。连接字符串并执行它的动态SQL。EXEC('SELECT*FROMTableXWHERExIdIN('+@Parameter+')'使用用户定义的函数将分隔的字符串拆分成表格SELECT*FROMTableYINNERJOINSPLIT(@Parameter)ONyID=splitId使用XML作为参数而不是分隔的varchar值SELECT*FROMTableZJO

  7. javascript - 解析 XML 时出错 : The reference to entity "version" must end with the ';' delimiter - 2

    这个问题在这里已经有了答案:Thereferencetoentity"foo"mustendwiththe';'delimiter(2个答案)关闭6年前。我对此很陌生,如果这是一个简单的问题,我很抱歉。我正在尝试将类似FB的盒子安装到我的网站上www.thehungryeurasian.com但是,当我尝试插入JavascriptSDK时:(function(d,s,id){varjs,fjs=d.getElementsByTagName(s)[0];if(d.getElementById(id))return;js=d.createElement(s);js.id=id;js.src

  8. php - 在 Laravel 验证正则表达式规则中验证纬度/经度 - preg_match() : No ending delimiter '/' found - 2

    这个问题在这里已经有了答案:Laravelpreg_match():Noendingdelimiter'/'found(2个答案)关闭5年前。我正在尝试使用自定义正则表达式规则验证Laravel5.4项目中的纬度/经度(基于此答案:https://stackoverflow.com/a/22007205/2332336)//Createvalidation$validator=Validator::make($request->all(),[//...'lat'=>'required|regex:/^[-]?(([0-8]?[0-9])\.(\d+))|(90(\.0+)?)$/','

  9. java - c :forEach loop printing square bracket delimiters - 2

    我将一个名为dataTable的属性传递到我的JSP中,它是一个字符串列表列表。在JSP中,如果我输出属性,使用${dataTable}它以原始格式打印出来:[[Header1,Header2,Header3],[A,B,C],[1,2,3]]我可以像这样直接打印一个项目:${dataTable[1][2]}输出:C然后当我写一个嵌套的c:forEach循环来打印表格时,每行末尾的方括号被包括在内,而不是整个对象上的方括号。我的代码是:${item}结果是:[Header1Header2Header3][ABC][123]这几乎就是我想要的,我只是不想要每一行开头和结尾的方括号。我错过

  10. Java/clojure : Multiple character delimiter, 并保留分隔符 - 2

    我正在用clojure开发一个项目,它可以与任何java类互操作,所以我的问题的答案可能是java或clojure。基本上,我需要能够根据给定的分隔符(多于一个字符)将字符串拆分成组件,但同时保留分隔符。例如:splitting"test:test:test"on":"=>["test"":""test"":""test"]splitting"::test::test::"on"::"=>["::""test""::""test""::"]我使用的壁橱是使用clojure的clojure.string/split,但它实际上并不返回分隔符。第二个最接近的是使用StringTokeniz

随机推荐