我想用它们比较Excel中的两个列表(列)来查找匹配项.由于这是一个相当复杂的操作,我过去使用Excel中的几个不同的功能(非VBA)来执行它,但事实证明它充其量是笨拙的,因此我想尝试一体化如果可能的话,VBA解决方案.
第一列具有不规则的名称(例如引用的昵称,诸如'jr'或'sr'的后缀,以及名字的'首选'版本的括号).此外,当存在中间名时,它们可以是名称或初始名称.
第一列中的顺序是:
<first name or initial>
<space>
<any parenthetical 'preferred' names - if they exist>
<space>
<middle name or initial - if it exists>
<space>
<quoted nickname or initial - if it exists>
<space>
<last name>
<comma - if necessary><space - if necessary><suffix - if it exists>
Run Code Online (Sandbox Code Playgroud)
第二列中的顺序是:
`<lastname><space><suffix>,<firstname><space><middle name, if it exists>`
Run Code Online (Sandbox Code Playgroud)
,没有第一列的"不规则".
我的主要目标是按照以下顺序"清理"第一列:
`lastname-space-suffix,firstname-space-preferred name-space-
middle name-space-nickname`
Run Code Online (Sandbox Code Playgroud)
虽然我在这里保留了"违规行为",但我可以在比较代码中使用某种"标志"来逐个提醒我.
我一直在尝试几种模式,这是我最近的:
["]?([A-Za-z]?)[.]?["]?[.]?[\s]?[,]?[\s]?
Run Code Online (Sandbox Code Playgroud)
但是,我想允许使用姓氏和后缀(如果存在).我用'global'测试了它,但是我无法弄清楚如何通过反向引用来分隔姓氏和后缀,例如.
然后,我想比较两个列表之间的最后一个,第一个,中间的初始(因为大多数名称只是第一个列表中的首字母).
An example would be:
(1st list)
John (Johnny) B. "Abe" Smith, Jr.
turned into:
Smith …Run Code Online (Sandbox Code Playgroud) 我对 PHP/XPath 还很陌生。我在 PHP 中使用 SimpleXML 和 XPath,通过名称空间遍历 XML。
我的问题是关于 registerXPathNamespace 函数中的“前缀”参数。
我的 xml feed 中有两个 xmlns;但是,我不确定在这种情况下如何使用该功能。
当我运行此代码时,我收到以下错误消息:
Undefined offset: 0
Run Code Online (Sandbox Code Playgroud)
我的 XML 无法以任何方式更改。请参阅下面的代码。感谢您提供任何线索。
PHP代码:
<?php
$url = 'test.xml';
$simplexml = simplexml_load_file($url);
//below, I'm uncertain as to what should be the prefix,
//in the case of no apparent prefix in the xml - I've seen 'a' in other
//examples (where the prefix does not exist in the xml), but unsure why.
$simplexml->registerXPathNamespace('a','http://www.digitalmeasures.com/schema/data');//
//below, as the 'dmd' prefix is in the …Run Code Online (Sandbox Code Playgroud)